package Utils

import (
	"bytes"
	"encoding/binary"
)

func Pack(msg []byte) ([]byte, error) {
	//创建一个存放bytes字节的缓冲
	dataBuff := bytes.NewBuffer([]byte{})
	//写dataLen
	var headerLen int32
	// 假设就是十个
	headerLen = 20
	if err := binary.Write(dataBuff, binary.LittleEndian, headerLen); err != nil {
		return nil, err
	}

	//写data数据
	if err := binary.Write(dataBuff, binary.LittleEndian, msg); err != nil {
		return nil, err
	}
	return dataBuff.Bytes(), nil
}

func UnPack(binaryData []byte) (int32, error) {
	dataBuff := bytes.NewReader(binaryData)
	var dataLen int32

	if err := binary.Read(dataBuff, binary.LittleEndian, &dataLen); err != nil {
		return 0, err
	}
	return dataLen, nil
}
